home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 05.zip / BS1 part 5 / Workbench2.1.adf / S / Pickmap.HD < prev    next >
AmigaDOS Script File  |  1992-01-09  |  3KB  |  129 lines

  1. .key target,initial/s
  2. .bra «
  3. .ket »
  4. .def target sys:
  5.  
  6. ; make required commands resident
  7. resident >NIL: c:copy add pure
  8. resident >NIL: c:list add pure
  9. resident >NIL: c:makedir add pure
  10. resident >NIL: c:search add pure
  11. resident >NIL: c:type add pure
  12.  
  13. ; build the keymap choice table
  14. failat 21
  15. if "«initial»" NOT EQ ""
  16.     set keysource Extras2.0:
  17. else
  18.     set keysource «target»
  19.  
  20. ; check if they have a keymaps directory, if not we'll need to get
  21. ; the extras disk swapped in now.
  22.     if not exists «target»devs/keymaps
  23.     makedir >NIL: «target»devs
  24.     makedir >NIL: «target»devs/keymaps
  25.         set keysource Extras2.0:
  26.     endif
  27. endif
  28. set keytarget «target»
  29. ;
  30. if EXISTS ${keysource}devs/keymaps
  31.     list ${keysource}devs/keymaps lformat "%-8n(%c)" >t:key${process}
  32.     type t:key${process} number to t:akey${process}
  33. endif
  34. echo "    0 usa     (American)" >>t:akey${process}
  35.  
  36. lab keystart
  37. ;
  38. echo "*Ec*N                KeyMap Selection"
  39. echo "*NPlease select your prefered keymap from the list below.*N"
  40. ;
  41. unset number
  42. type t:akey${process}
  43. echo "*NYour choice (RETURN to exit without choosing) ? " noline
  44. set >NIL: number ?
  45. ; did they want to just quit ?
  46. if "$number" EQ "*$number"
  47.     skip keyexit1
  48. endif
  49. ;
  50. ; usa keymap is in rom
  51. if "$number" EQ "0"
  52.     setenv sys/keyboard usa
  53.     skip keyend
  54. endif
  55. ;
  56. ; validity check
  57. if "$number" GT "9"
  58.     echo "*NInvalid selection."
  59.     wait 3 sec
  60.     skip back keystart
  61. else
  62.     if "0" GT "$number"
  63.         echo "*NInvalid selection."
  64.         wait 3 sec
  65.         skip back keystart
  66.     endif
  67. endif
  68.  
  69. ;
  70. ; translate the number into the keymap name
  71. ;
  72. set look string="`echo " $number "`"
  73. ; make sure selection number exists in list
  74. search >NIL: t:akey${process} $look
  75. if WARN
  76.     echo "*NInvalid selection."
  77.     wait 3
  78.     skip back keystart
  79. endif
  80.  
  81. echo "`search t:akey${process} $look`" first 14 len 4 >env:sys/keyboard
  82. ;
  83. ; must copy selected keymap from keysource to ram: to avoid a potential
  84. ; disk swap
  85. copy ${keysource}devs/keymaps/${sys/keyboard} ram: com
  86.  
  87. ; make sure the keymap exists
  88. if not exists ${keytarget}devs/keymaps/${sys/keyboard}
  89.     if "«initial»" EQ ""
  90.         echo "Error: ${sys/keyboard} keymap not found."
  91.         wait 3 sec
  92.         skip back keystart
  93.     endif
  94.     copy ram:${sys/keyboard} ${keytarget}devs/keymaps com
  95. endif
  96.  
  97. ; delete temporary copy of the keymap
  98. delete >NIL: ram:${sys/keyboard} quiet
  99. ;
  100. lab keyend
  101.  
  102. ; set the selected keymap
  103. sys:system/setmap ${sys/keyboard}
  104.  
  105. ; copy the keymap selection into their preferences archive
  106. makedir >NIL: ${keytarget}prefs
  107. makedir >NIL: ${keytarget}prefs/env-archive
  108. makedir >NIL: ${keytarget}prefs/env-archive/sys
  109. echo >${keytarget}prefs/env-archive/sys/keyboard ${sys/keyboard}
  110.  
  111. ;
  112. lab keyexit1
  113.  
  114. delete >NIL: t:key${process} t:akey${process} quiet
  115.  
  116. lab keyexit2
  117.  
  118. resident >NIL: remove copy
  119. resident >NIL: remove list
  120. resident >NIL: remove makedir
  121. resident >NIL: remove search
  122. resident >NIL: remove type
  123.  
  124. unset query
  125. unset look
  126. unset number
  127. unset keysource
  128. unset keytarget
  129.